Steering correction for steer-by-wire

ABSTRACT

A computer includes a processor and a memory storing instructions executable by the processor to determine a learned clear vision offset based on a currently calculated clear vision offset and a previously stored clear vision offset, and steer a steer-by-wire system of a vehicle while correcting a steering angle by a lesser value of the learned clear vision offset and a maximum correctable offset.

BACKGROUND

A steering system for a vehicle controls the turning of the road wheels.Conventional steering systems include rack-and-pinion systems withelectric power-assisted steering, and steer-by-wire systems. Steeringsystems can include an electronic control unit (ECU) that is incommunication with and receives input from a vehicle controller and/or ahuman driver. The human driver may control the steering via a steeringwheel.

Clear vision offset is the degree of offset between an actual turn ofthe road wheels and a turn of the road wheels expected from a positionof the steering wheel. An increase in the clear vision offset can becaused by an impact to the vehicle or by normal use of the vehicle overan extended period of time. Clear vision offset can make operation ofthe vehicle more difficult or confusing by forcing the human driver toturn the steering wheel off of the center position to keep the vehicledriving straight, or if the vehicle is operating autonomously, rotatingthe steering wheel to a position different than expected by an occupantof the vehicle.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of an example vehicle.

FIG. 2 is a diagram of an example steering system for the vehicle ofFIG. 1.

FIG. 3 is a process flow diagram of an example process for steering thevehicle of FIG. 1 based on a clear vision offset.

DETAILED DESCRIPTION

The system described herein can correct for clear vision offset whilereducing the need for the vehicle to visit a repair facility. The systemcan accurately determine the clear vision offset and can correct forclear vision offset that builds up over time. Thus, the vehicle may onlyneed to visit a repair facility for realignments at normally scheduledintervals or if the vehicle is damaged from an impact, reducing visitsto the repair facility. The correction for the clear vision offset canmake the driving or riding in the vehicle easier for a human operator oroccupant by actuating a motor with a correction to the steering angleapplied to road wheels or the steering-wheel angle applied to a steeringwheel.

A computer includes a processor and a memory storing instructionsexecutable by the processor to determine a learned clear vision offsetbased on a currently calculated clear vision offset and a previouslystored clear vision offset, and steer a steer-by-wire system of avehicle while correcting a steering angle by a lesser value of thelearned clear vision offset and a maximum correctable offset.

Correcting the steer angle may include one of revising a steering-wheelangle received from a steering wheel, revising the steering angle, oractuating a motor to rotate the steering wheel.

The processor may be further programmed to set a flag in response to thelearned clear vision offset exceeding the maximum correctable offset.

Determining the learned clear vision offset may include filtering thecurrently calculated clear vision offset and a plurality of previouslystored clear vision offsets including the previously stored clear visionoffset.

The previously stored clear vision offset may be an immediatelypreviously stored clear vision offset, and the processor may be furtherprogrammed to erase the learned clear vision offset in response to thecurrently calculated clear vision offset and the immediately previouslystored clear vision offset both exceeding a threshold difference fromthe learned clear vision offset. The processor may be further programmedto erase a plurality of nonimmediately previously stored clear visionoffsets in response to the currently calculated clear vision offset andthe immediately previously stored clear vision offset both exceeding thethreshold difference from the learned clear vision offset.

The processor may be further programmed to calculate the currentlycalculated clear vision offset upon determining that the vehicle isdriving substantially straight. Calculating the currently calculatedclear vision offset may include finding a difference of a steering-wheelangle and one of a straight-ahead position of a steering wheel and aproduct of the steering angle and a steering ratio.

The processor is further programmed to store the currently calculatedclear vision offset as the previously stored clear vision offset.

A method includes determining a learned clear vision offset based on acurrently calculated clear vision offset and a previously stored clearvision offset, and steering a steer-by-wire system of a vehicle whilecorrecting a steering angle by a lesser value of the learned clearvision offset and a maximum correctable offset.

Correcting the steering angle may include one of revising asteering-wheel angle received from a steering wheel, revising thesteering angle, and actuating a motor to rotate the steering wheel.

The method may further include setting a flag in response to the learnedclear vision offset exceeding the maximum correctable offset.

Determining the learned clear vision offset may include filtering thecurrently calculated clear vision offset and a plurality of previouslystored clear vision offsets including the previously stored clear visionoffset.

The previously stored clear vision offset may be an immediatelypreviously stored clear vision offset, and the method may furtherinclude erasing the learned clear vision offset in response to thecurrently calculated clear vision offset and the immediately previouslystored clear vision offset both exceeding a threshold difference fromthe learned clear vision offset. The method may further include erasinga plurality of nonimmediately previously stored clear vision offsets inresponse to the currently calculated clear vision offset and theimmediately previously stored clear vision offset both exceeding thethreshold difference from the learned clear vision offset.

The method may further include calculating the currently calculatedclear vision offset upon determining that the vehicle is drivingstraight. Calculating the currently calculated clear vision offset mayinclude finding a difference of a steering-wheel angle and one of astraight-ahead position of a steering wheel and a product of thesteering angle and a steering ratio.

The method may further include storing the currently calculated clearvision offset as the previously stored clear vision offset.

A system includes a steer-by-wire system, and a computer programmed todetermine a learned clear vision offset based on a currently calculatedclear vision offset and a previously stored clear vision offset, andsteer the steer-by-wire system while correcting a steering angle by alesser value of the learned clear vision offset and a maximumcorrectable offset.

The steer-by-wire system may include a steering wheel communicativelycoupled to the computer and a motor operably coupled to the steeringwheel, and correcting the steering angle may include one of revising asteering-wheel angle received from the steering wheel, revising thesteering angle, and actuating the motor to rotate the steering wheel.

With reference to the Figures, a computer 32 includes a processor and amemory storing instructions executable by the processor to determine alearned clear vision offset based on a currently calculated clear visionoffset and a previously stored clear vision offset, and steer asteer-by-wire system 34 of a vehicle 30 while correcting a steeringangle by a lesser value of the learned clear vision offset and a maximumcorrectable offset.

With reference to FIG. 1, the vehicle 30 may be any passenger orcommercial automobile such as a car, a truck, a sport utility vehicle, acrossover, a van, a minivan, a taxi, a bus, etc.

The vehicle 30 may be an autonomous vehicle. The computer 32 can beprogrammed to operate the vehicle 30 independently of the interventionof a human driver, completely or to a lesser degree. The computer 32 maybe programmed to operate a propulsion 36, a brake system 38, thesteer-by-wire system 34, and/or other vehicle systems. For the purposesof this disclosure, autonomous operation means the computer 32 controlsthe propulsion 36, brake system 38, and steer-by-wire system 34 withoutinput from a human driver; semi-autonomous operation means the computer32 controls one or two of the propulsion 36, brake system 38, andsteer-by-wire system 34 and a human driver controls the remainder; andnonautonomous operation means a human driver controls the propulsion 36,brake system 38, and steer-by-wire system 34.

The computer 32 is a microprocessor-based controller. The computer 32includes a processor, memory, etc. The memory of the computer 32includes memory for storing instructions executable by the processor aswell as for electronically storing data and/or databases.

The computer 32 may transmit and receive data through a communicationsnetwork 40 such as a controller area network (CAN) bus, Ethernet, WiFi,Local Interconnect Network (LIN), onboard diagnostics connector(OBD-II), and/or by any other wired or wireless communications network.The computer 32 may be communicatively coupled to the propulsion 36, thebrake system 38, the steer-by-wire system 34, sensors 42, and othercomponents via the communications network 40.

The propulsion 36 of the vehicle 30 generates energy and translates theenergy into motion of the vehicle 30. The propulsion 36 may be aconventional vehicle propulsion subsystem, for example, a conventionalpowertrain including an internal-combustion engine coupled to atransmission that transfers rotational motion to road wheels 44; anelectric powertrain including batteries, an electric motor, and atransmission that transfers rotational motion to the road wheels 44; ahybrid powertrain including elements of the conventional powertrain andthe electric powertrain; or any other type of propulsion. The propulsion36 can include an electronic control unit (ECU) or the like that is incommunication with and receives input from the computer 32 and/or ahuman driver. The human driver may control the propulsion 36 via, e.g.,an accelerator pedal and/or a gear-shift lever.

The brake system 38 is typically a conventional vehicle brakingsubsystem and resists the motion of the vehicle 30 to thereby slowand/or stop the vehicle 30. The brake system 38 may include frictionbrakes such as disc brakes, drum brakes, band brakes, etc.; regenerativebrakes; any other suitable type of brakes; or a combination. The brakesystem 38 can include an electronic control unit (ECU) or the like thatis in communication with and receives input from the computer 32 and/ora human driver. The human driver may control the brake system 38 via,e.g., a brake pedal.

The steer-by-wire system 34 is typically a conventional vehicle steeringsubsystem and controls the turning of the road wheels 44, as describedin more detail below with respect to FIG. 2. The steer-by-wire system 34can include an electronic control unit (ECU) or the like that is incommunication with and receives input from the computer 32 and/or ahuman driver. The human driver may control the steering via, e.g., asteering wheel 46. For the purposes of this disclosure, a “steer-by-wiresystem” is defined as a steering system with a gap in mechanicallinkages between the steering wheel 46 or other steering input and theroad wheels 44, e.g., input from the steering wheel 46 is electronicallycommunicated to the ECUs, which instruct actuators to turn the roadwheels 44, such as by instructing a steering motor 52 to move a steeringrack 54. If the vehicle 30 is a fully autonomous vehicle, thesteer-by-wire system 34 may lack the steering wheel 46.

The sensors 42 may provide data about operation of the vehicle 30, forexample, wheel speed, wheel orientation, and engine and transmissiondata (e.g., temperature, fuel consumption, etc.). The sensors 42 maydetect the location and/or orientation of the vehicle 30. For example,the sensors 42 may include global positioning system (GPS) sensors;accelerometers such as piezo-electric or microelectromechanical systems(MEMS); gyroscopes such as rate, ring laser, or fiber-optic gyroscopes;inertial measurements units (IMU); and magnetometers. The sensors 42 maydetect the external world, e.g., objects and/or characteristics ofsurroundings of the vehicle 30, such as other vehicles, road lanemarkings, traffic lights and/or signs, pedestrians, etc. For example,the sensors 42 may include radar sensors, scanning laser range finders,light detection and ranging (LIDAR) devices, and image processingsensors such as cameras. The sensors 42 may include communicationsdevices, for example, vehicle-to-infrastructure (V2I) orvehicle-to-vehicle (V2V) devices.

With reference to FIG. 2, the steering wheel 46 allows an operator tosteer. The steering wheel 46 may be, e.g., a rigid ring fixedly attachedto a steering column 48. The steering column 48 may be, e.g., a shaftconnecting the steering wheel 46 to a feedback actuator 50. The steeringcolumn 48 may house a clutch and one or more of the sensors 42 such as atorque sensor and/or a position sensor positioned to detect theorientation of the steering wheel 46 (not shown). The position sensormay be, e.g., a Hall effect sensor, a rotary encoder, etc. The positionsensor may be in communication with the computer 32 via thecommunications network 40.

The computer 32 may output a signal to the steering motor 52 via thecommunications network 40. The steering motor 52 may be one or moreelectromechanical actuators, e.g., an electric motor, coupled to thesteering rack 54, or otherwise turnably coupled to the road wheels 44,and the steering motor 52 may transform the signal into mechanicalmotion of the steering rack 54 and/or turning of the road wheels 44. Thesteering rack 54 may be turnably coupled to the road wheels 44, forexample, in a four-bar linkage. The position of the steering rack 54determines the turning of the road wheels 44. Translational motion ofthe steering rack 54 results in turning of the road wheels 44. Thesteering motor 52 may be coupled to the steering rack 54 via a rack andpinion 56, that is, gear meshing between a pinion gear and a rack gear(not shown).

The feedback actuator 50 applies a torque to the steering column 48 toprovide feedback to the operator. The feedback actuator 50 may be, e.g.,an electric motor rotatably coupled to the steering column 48. Thefeedback actuator 50 may apply torque with a value chosen to simulatetorque feedback from a conventional steering system, e.g., based onsteering angle and vehicle speed. If the vehicle 30 is operatingautonomously, the feedback actuator 50 may apply torque to rotate thesteering wheel 46 to a steering-wheel angle related to the steeringangle of the vehicle 30, e.g., by a steering ratio.

The sensors 42 provide data about components of the steer-by-wire system34. For example, the sensors 42 include wheel-speed sensors for the roadwheels 44; position and/or inertial sensors on components of thesteering system such as the steering wheel 46, the steering column 48,the rack and pinion 56, or the steering rack 54; torque sensors oncomponents of the steering system such as the steering column 48, therack and pinion 56, the steering motor 52, or the feedback actuator 50;and voltage or current sensors on terminals of the steering motor 52 orfeedback actuator 50.

FIG. 3 is a process flow diagram illustrating an exemplary process 300for steering the vehicle 30 based on a clear vision offset. For thepurposes of this disclosure, a “clear vision offset” is defined as adifference in angle between an actual turn of the road wheels 44 and aturn of the road wheels 44 expected from a position of the steeringwheel 46. The clear vision offset may be expressed in degrees in eitherthe steering-angle domain or the steering-wheel-angle domain. For thepurposes of this disclosure, a “steering angle” is either the turn ofthe road wheels 44 relative to straight ahead or the angle of a pinionof the rack and pinion 56 relative to a center position, and a“steering-wheel angle” is a rotation of the steering wheel 46 relativeto a center position. The steering-angle domain and thesteering-wheel-angle domain are related by a steering ratio. Thesteering ratio is a ratio between the steering-wheel angle and thesteering angle when the vehicle 30 is perfectly aligned, i.e.,R=θ_(SW)/θ_(S), in which R is the steering ratio, θ_(SW) is thesteering-wheel angle, and θ_(S) is the steering angle. The steeringratio may be a value stored in memory. The steering ratio may beconstant, i.e., a single value, or the steering ratio may map onto,e.g., vehicle speed, in which case the steering ratio may be stored inmemory as a lookup table. In the steering-angle domain, the clear visionoffset is a difference between the steering angle and the steering-wheelangle divided by a steering ratio, i.e., CVO_(SA)=θ_(S)−θ_(SW)/R. In thesteering-wheel-angle domain, the clear vision offset is a differencebetween the steering angle multiplied by the steering ratio and thesteering-wheel angle, i.e., CVO_(SWA)=R*θ_(S)−θ_(SW). The process 300may be performed in the steering-angle domain as described below, i.e.,by converting steering-wheel-angle quantities to the steering-angledomain, or alternatively in the steering-wheel-angle domain, i.e., byconverting steering-angle quantities to the steering-wheel-angle domain.

As a general overview of the process 300, the computer 32 calculates acurrently calculated clear vision offset, determines a learned clearvision offset based on the currently calculated clear vision offset andpreviously stored clear vision offsets, such as by filtering, andcorrects the steering angle of the vehicle 30 by a lesser value of thelearned clear vision offset and a maximum correctable offset whilesteering. The memory of the computer 32 stores executable instructionsfor performing the steps of the process 300. The process 300 may beperformed repeatedly, e.g., substantially continuously, to improve theaccuracy of the learned clear vision offset as additional currentlycalculated clear vision offsets are filtered. The learned clear visionoffset may be stored in memory during each performance of the process300 to be used in the filtering during the next performance, as will bedescribed below.

The process 300 begins in a block 305, in which the computer 32 receivesdata from the sensors 42. For example, the computer 32 may receive dataincluding values for a torque on the steering wheel 46, a rotationalspeed of the steering wheel 46, a torque exerted by the feedbackactuator 50, a steering angle, a pinion velocity, a torque exerted bythe steering motor 52, a lateral force on the steering rack 54, a speedof the vehicle 30, a lateral acceleration of the vehicle 30, a yaw rateof the vehicle 30, and/or rotational speeds of the road wheels 44. The“pinion velocity” is a rotational speed of the turning of the roadwheels 44. The values in the sensor data may be directly measured by thesensors 42 or inferred from measurements by the sensors 42; e.g., thevalue for the torques exerted by the feedback actuator 50 and thesteering motor 52 may be inferred from the voltages across the terminalsof the feedback actuator 50 and the steering motor 52, respectively; thevalue for the steering angle may be inferred from a linear position ofthe steering rack 54 or the angle of road-wheel actuators; etc.

Next, in a decision block 310, the computer 32 determines whether thevehicle 30 is driving substantially straight, i.e., whether the steeringangle is substantially zero over a preset time period. The preset timeperiod is stored in the memory and may be chosen to minimize falsepositives. The computer 32 determines whether, for the preset timeperiod, one or more values are substantially equal to the valuesexpected when the vehicle 30 is driving substantially straight. Forexample, the computer 32 may determine whether the torque on thesteering wheel 46 is substantially equal to the torque exerted by thefeedback actuator 50, whether the lateral acceleration of the vehicle 30is substantially zero, whether the rotational speeds of the road wheels44 are substantially equal to each other, etc. For multiple tests, thecomputer 32 may determine that the vehicle 30 is driving substantiallystraight upon determining that all the tests are satisfied; e.g., thecomputer 32 determines that the vehicle 30 is driving substantiallystraight upon determining that the torque on the steering wheel 46 issubstantially equal to the torque exerted by the feedback actuator 50,that the lateral acceleration of the vehicle 30 is substantially zero,and that the rotational speeds of the road wheels 44 are substantiallyequal to each other. If the vehicle 30 is not driving substantiallystraight, the process 300 returns to the block 305 for the computer 32to receive updated sensor data.

If the vehicle 30 is driving substantially straight, next, in a block315, the computer 32 calculates the currently calculated clear visionoffset. The currently calculated clear vision offset may be a differenceof the steering-wheel angle and some quantity corresponding to thedirection of the vehicle 30 while driving substantially straight. Forexample, the currently calculated clear vision offsets may be adifference of the steering-wheel angle and a straight-ahead position ofthe steering wheel 46, which is then converted from thesteering-wheel-angle domain to the steering-angle domain by dividing bythe steering ratio, i.e., CVO_(SA) ^(curr)=(θ_(SW)−θ_(straight))/R. Thestraight-ahead position of the steering wheel 46 may be calibrated in afactory immediately after manufacturing the vehicle 30, and a positionsensor of the sensors 42 may measure the steering-wheel angle relativeto the precalibrated straight-ahead position of the steering wheel 46.For another example, the currently calculated clear vision offset may bea difference of the steering-wheel angle divided by the steering ratioand the steering angle, i.e., CVO_(SA) ^(curr)=θ_(S)−θ_(SW)/R.

Next, in a block 320, the computer 32 stores the currently calculatedclear vision offset. The computer 32 may continue to store a pluralityof calculated clear vision offsets as they are calculated in previousperformances of the process 300 until they are erased after, e.g., arealignment, as described below in blocks 325 and 330. The computer 32may populate a table with the currently calculated clear vision offsetand an associated time value at which the currently calculated clearvision offset was recorded. For the purposes of this disclosure, a“calculated clear vision offset” is a clear vision offset calculated ata point in time, the “currently calculated clear vision offset” is themost recently stored calculated clear vision offset, a “previouslystored clear vision offset” is a calculated clear vision offset otherthan the most recently stored one, an “immediately previously storedclear vision offset” is the second most recently stored calculated clearvision offset, and a “nonimmediately previously stored clear visionoffset” is a calculated clear vision offset other than the two mostrecently stored ones. When the computer 32 stores the currentlycalculated clear vision offset, what had been the currently calculatedclear vision offset is stored as the immediately previously stored clearvision offset.

Next, in a block 325, the computer 32 determines whether the currentlycalculated clear vision offset and the immediately previously storedclear vision offset both exceed a threshold difference from the learnedclear vision offset. The learned clear vision offset is determined fromthe immediately previous performance of the process 300, as will bedescribed below with respect to a block 335; if no value is stored forthe learned clear vision offset or for the immediately previously storedclear vision, then the currently calculated clear vision offset and theimmediately previously stored clear vision offset are deemed not toexceed the threshold difference from the learned clear vision offset.The threshold difference is chosen to be greater than changes to theclear vision offset from misalignment resulting from general operationof the vehicle 30, and less than changes to the clear vision offset fromrealignments performed by automotive technicians on the vehicle 30.Clear vision offsets corresponding to misalignments from use may bedetermined experimentally by measuring the clear vision offset atvarious mileages while road testing the vehicle 30, and clear visionoffsets corresponding to technician realignments may be determinedexperimentally by measuring the clear vision offset before and aftersuch realignments to the vehicle 30. In response to either the currentlycalculated clear vision offset or the immediately previously storedclear vision offset not exceeding the threshold difference from thelearned clear vision offset, the process 300 proceeds to the block 335.

In response to the currently calculated clear vision offset and theimmediately previously stored clear vision offset both exceeding thethreshold difference from the learned clear vision offset, next, in ablock 330, the computer 32 erases the learned clear vision offset andthe nonimmediately previously stored clear vision offsets from thememory. In essence, upon determining that the vehicle 30 has beenrealigned, the computer 32 erases data related to the clear visionoffset from before the realignment.

The block 335 occurs after the block 330, or after the decision block325 if either the currently calculated clear vision offset or theimmediately previously stored clear vision offset do not exceed thethreshold difference from the learned clear vision offset. In the block335, the computer 32 determines the learned clear vision offset based onthe calculated clear vision offsets, i.e., based on the currentlycalculated clear vision offset and the previously stored clear visionoffsets. For example, the computer 32 may filter the calculated clearvision offsets to reduce unwanted noise. The learned clear vision offsetmay be the filtered calculated clear vision offset. The filter may be,e.g., an average of the calculated clear vision offsets, or an averageof a set number of the most recent calculated clear vision offsets(i.e., a running average). The averages may weight the calculated clearvision offsets equally or may weight more recent calculated clear visionoffsets more heavily. Alternatively, the filter may be a continuous-timefilter such as a low-pass filter, e.g., a second-order low-pass filtersuch as (as²+bs+c)/(ds²+es+f), in which a, b, c, d, e, and f areexperimentally determined constants. The constants may be chosen byexperimenting to determine frequencies in the signal of calculated clearvision offsets that correspond to actual changes in clear vision offsetversus noise. The computer 32 stores the learned clear vision offset inthe memory, displacing any previous learned clear vision offsets.

Next, in a decision block 340, the computer 32 determines whether thelearned clear vision offset exceeds a maximum correctable offset. Themaximum correctable offset is a value stored in the memory. The maximumcorrectable offset may be chosen to be greater than a clear visionoffset that occurs normally over the life of the vehicle 30 and lessthan a clear vision offset caused by damage to the vehicle 30. Inresponse to the learned clear vision offset not exceeding the maximumcorrectable offset, the process 300 proceeds to a block 350.

In response to the learned clear vision offset exceeding the maximumcorrectable offset, next, in a block 345, the computer 32 sets a flagindicating that the vehicle 30 should be inspected for possible repairs.For example, the computer 32 may set a diagnostic test code (DTC) in anonboard diagnostics system (e.g., OBD-II) and/or may illuminate a “checkengine” light.

The block 350 occurs after the block 345, or after the decision block340 if the learned clear vision offset does not exceed the maximumcorrectable offset. In the block 350, the computer 32 sets a correctionto the steering angle of the vehicle 30. The correction equals thelesser of the learned clear vision offset and the maximum correctableoffset. In other words, the steering angle is corrected by the learnedclear vision offset up to the maximum correctable offset. The correctionis applied in the steer-by-wire system 34 to bring the steering-wheelangle and the steering angle into agreement. For example, the correctionmay be applied to revise the steering-wheel angle received from thesteering wheel 46. In particular, the correction is multiplied by thesteering ratio (to move from the steering-angle domain to thesteering-wheel-angle domain) and added to the steering-wheel anglereceived from the steering wheel 46, and the resulting value is used inplace of the steering-wheel angle. For another example, the correctionmay be applied to revise the steering angle produced by the steeringmotor 52. The correction is added to the steering angle, and theresulting value is used as the input to the steering motor 52 in placeof the steering angle. For another example, if the vehicle 30 isoperating fully autonomously, the correction may be applied to revisethe steering-wheel angle outputted by the feedback actuator 50. Inparticular, the correction is multiplied by the steering ratio (to movefrom the steering-angle domain to the steering-wheel-angle domain) andadded to the steering-wheel angle, and the resulting value is used asthe input to the feedback actuator 50 in place of the steering-wheelangle.

Next, in a block 355, the computer 32 steers the steer-by-wire system 34of the vehicle 30 while correcting the steering angle. In other words,the steer-by-wire system 34 receives input from an operator via thesteering wheel 46 or from an autonomous-driving algorithm, and thecorrection is applied to the steering-wheel angle received from thesteering wheel 46, to the steering angle sent to the steering motor 52,or to the steering-wheel angle sent to the feedback actuator 50. Thecomputer 32 actuates the steering motor 52 to turn the road wheels 44with the correction applied. After the block 355, the process 300 ends.

In general, the computing systems and/or devices described may employany of a number of computer operating systems, including, but by nomeans limited to, versions and/or varieties of the Ford Sync®application, AppLink/Smart Device Link middleware, the MicrosoftAutomotive® operating system, the Microsoft Windows® operating system,the Unix operating system (e.g., the Solaris® operating systemdistributed by Oracle Corporation of Redwood Shores, Calif.), the AIXUNIX operating system distributed by International Business Machines ofArmonk, N.Y., the Linux operating system, the Mac OSX and iOS operatingsystems distributed by Apple Inc. of Cupertino, Calif., the BlackBerryOS distributed by Blackberry, Ltd. of Waterloo, Canada, and the Androidoperating system developed by Google, Inc. and the Open HandsetAlliance, or the QNX® CAR Platform for Infotainment offered by QNXSoftware Systems. Examples of computing devices include, withoutlimitation, an on-board vehicle computer, a computer workstation, aserver, a desktop, notebook, laptop, or handheld computer, or some othercomputing system and/or device.

Computing devices generally include computer-executable instructions,where the instructions may be executable by one or more computingdevices such as those listed above. Computer executable instructions maybe compiled or interpreted from computer programs created using avariety of programming languages and/or technologies, including, withoutlimitation, and either alone or in combination, Java™, C, C++, Matlab,Simulink, Stateflow, Visual Basic, Java Script, Perl, HTML, etc. Some ofthese applications may be compiled and executed on a virtual machine,such as the Java Virtual Machine, the Dalvik virtual machine, or thelike. In general, a processor (e.g., a microprocessor) receivesinstructions, e.g., from a memory, a computer readable medium, etc., andexecutes these instructions, thereby performing one or more processes,including one or more of the processes described herein. Suchinstructions and other data may be stored and transmitted using avariety of computer readable media. A file in a computing device isgenerally a collection of data stored on a computer readable medium,such as a storage medium, a random access memory, etc.

A computer-readable medium (also referred to as a processor-readablemedium) includes any non-transitory (e.g., tangible) medium thatparticipates in providing data (e.g., instructions) that may be read bya computer (e.g., by a processor of a computer). Such a medium may takemany forms, including, but not limited to, non-volatile media andvolatile media. Non-volatile media may include, for example, optical ormagnetic disks and other persistent memory. Volatile media may include,for example, dynamic random access memory (DRAM), which typicallyconstitutes a main memory. Such instructions may be transmitted by oneor more transmission media, including coaxial cables, copper wire andfiber optics, including the wires that comprise a system bus coupled toa processor of a ECU. Common forms of computer-readable media include,for example, a floppy disk, a flexible disk, hard disk, magnetic tape,any other magnetic medium, a CD-ROM, DVD, any other optical medium,punch cards, paper tape, any other physical medium with patterns ofholes, a RAM, a PROM, an EPROM, a FLASH-EEPROM, any other memory chip orcartridge, or any other medium from which a computer can read.

Databases, data repositories or other data stores described herein mayinclude various kinds of mechanisms for storing, accessing, andretrieving various kinds of data, including a hierarchical database, aset of files in a file system, an application database in a proprietaryformat, a relational database management system (RDBMS), etc. Each suchdata store is generally included within a computing device employing acomputer operating system such as one of those mentioned above, and areaccessed via a network in any one or more of a variety of manners. Afile system may be accessible from a computer operating system, and mayinclude files stored in various formats. An RDBMS generally employs theStructured Query Language (SQL) in addition to a language for creating,storing, editing, and executing stored procedures, such as the PL/SQLlanguage mentioned above.

In some examples, system elements may be implemented ascomputer-readable instructions (e.g., software) on one or more computingdevices (e.g., servers, personal computers, etc.), stored on computerreadable media associated therewith (e.g., disks, memories, etc.). Acomputer program product may comprise such instructions stored oncomputer readable media for carrying out the functions described herein.

In the drawings, the same reference numbers indicate the same elements.Further, some or all of these elements could be changed. With regard tothe media, processes, systems, methods, heuristics, etc. describedherein, it should be understood that, although the steps of suchprocesses, etc. have been described as occurring according to a certainordered sequence, such processes could be practiced with the describedsteps performed in an order other than the order described herein. Itfurther should be understood that certain steps could be performedsimultaneously, that other steps could be added, or that certain stepsdescribed herein could be omitted. In other words, the descriptions ofprocesses herein are provided for the purpose of illustrating certainembodiments, and should in no way be construed so as to limit theclaims.

Accordingly, it is to be understood that the above description isintended to be illustrative and not restrictive. Many embodiments andapplications other than the examples provided would be apparent to thoseof skill in the art upon reading the above description. The scope of theinvention should be determined, not with reference to the abovedescription, but should instead be determined with reference to theappended claims, along with the full scope of equivalents to which suchclaims are entitled. It is anticipated and intended that futuredevelopments will occur in the arts discussed herein, and that thedisclosed systems and methods will be incorporated into such futureembodiments. In sum, it should be understood that the invention iscapable of modification and variation and is limited only by thefollowing claims.

All terms used in the claims are intended to be given their plain andordinary meanings as understood by those skilled in the art unless anexplicit indication to the contrary in made herein. In particular, useof the singular articles such as “a,” “the,” “said,” etc. should be readto recite one or more of the indicated elements unless a claim recitesan explicit limitation to the contrary. “Substantially” as used hereinmeans that a dimension, time duration, shape, or other adjective mayvary slightly from what is described due to physical imperfections,power interruptions, variations in machining or other manufacturing,etc. Use of “in response to” and “upon determining” indicates a causalrelationship, not merely a temporal relationship.

The disclosure has been described in an illustrative manner, and it isto be understood that the terminology which has been used is intended tobe in the nature of words of description rather than of limitation. Manymodifications and variations of the present disclosure are possible inlight of the above teachings, and the disclosure may be practicedotherwise than as specifically described.

What is claimed is:
 1. A computer comprising a processor and a memorystoring instructions executable by the processor to: determine a learnedclear vision offset based on a currently calculated clear vision offsetand a previously stored clear vision offset; and steer a steer-by-wiresystem of a vehicle while correcting a steering angle by a lesser valueof the learned clear vision offset and a maximum correctable offset. 2.The computer of claim 1, wherein correcting the steer angle includes oneof revising a steering-wheel angle received from a steering wheel,revising the steering angle, or actuating a motor to rotate the steeringwheel.
 3. The computer of claim 1, wherein the processor is furtherprogrammed to set a flag in response to the learned clear vision offsetexceeding the maximum correctable offset.
 4. The computer of claim 1,wherein determining the learned clear vision offset includes filteringthe currently calculated clear vision offset and a plurality ofpreviously stored clear vision offsets including the previously storedclear vision offset.
 5. The computer of claim 1, wherein the previouslystored clear vision offset is an immediately previously stored clearvision offset, and the processor is further programmed to erase thelearned clear vision offset in response to the currently calculatedclear vision offset and the immediately previously stored clear visionoffset both exceeding a threshold difference from the learned clearvision offset.
 6. The computer of claim 5, wherein the processor isfurther programmed to erase a plurality of nonimmediately previouslystored clear vision offsets in response to the currently calculatedclear vision offset and the immediately previously stored clear visionoffset both exceeding the threshold difference from the learned clearvision offset.
 7. The computer of claim 1, wherein the processor isfurther programmed to calculate the currently calculated clear visionoffset upon determining that the vehicle is driving substantiallystraight.
 8. The computer of claim 7, wherein calculating the currentlycalculated clear vision offset includes finding a difference of asteering-wheel angle and one of a straight-ahead position of a steeringwheel and a product of the steering angle and a steering ratio.
 9. Thecomputer of claim 7, wherein the processor is further programmed tostore the currently calculated clear vision offset as the previouslystored clear vision offset.
 10. A method comprising: determining alearned clear vision offset based on a currently calculated clear visionoffset and a previously stored clear vision offset; and steering asteer-by-wire system of a vehicle while correcting a steering angle by alesser value of the learned clear vision offset and a maximumcorrectable offset.
 11. The method of claim 10, wherein correcting thesteering angle includes one of revising a steering-wheel angle receivedfrom a steering wheel, revising the steering angle, and actuating amotor to rotate the steering wheel.
 12. The method of claim 10, furthercomprising setting a flag in response to the learned clear vision offsetexceeding the maximum correctable offset.
 13. The method of claim 10,wherein determining the learned clear vision offset includes filteringthe currently calculated clear vision offset and a plurality ofpreviously stored clear vision offsets including the previously storedclear vision offset.
 14. The method of claim 10, wherein the previouslystored clear vision offset is an immediately previously stored clearvision offset, the method further comprising erasing the learned clearvision offset in response to the currently calculated clear visionoffset and the immediately previously stored clear vision offset bothexceeding a threshold difference from the learned clear vision offset.15. The method of claim 14, further comprising erasing a plurality ofnonimmediately previously stored clear vision offsets in response to thecurrently calculated clear vision offset and the immediately previouslystored clear vision offset both exceeding the threshold difference fromthe learned clear vision offset.
 16. The method of claim 10, furthercomprising calculating the currently calculated clear vision offset upondetermining that the vehicle is driving straight.
 17. The method ofclaim 16, wherein calculating the currently calculated clear visionoffset includes finding a difference of a steering-wheel angle and oneof a straight-ahead position of a steering wheel and a product of thesteering angle and a steering ratio.
 18. The method of claim 16, furthercomprising storing the currently calculated clear vision offset as thepreviously stored clear vision offset.
 19. A system comprising: asteer-by-wire system; and a computer programmed to determine a learnedclear vision offset based on a currently calculated clear vision offsetand a previously stored clear vision offset; and steer the steer-by-wiresystem while correcting a steering angle by a lesser value of thelearned clear vision offset and a maximum correctable offset.
 20. Thesystem of claim 19, wherein the steer-by-wire system includes a steeringwheel communicatively coupled to the computer and a motor operablycoupled to the steering wheel, and correcting the steering angleincludes one of revising a steering-wheel angle received from thesteering wheel, revising the steering angle, and actuating the motor torotate the steering wheel.